package cl.tinet.trainee.proyecto.dao;

import java.util.ArrayList;
import java.util.Date;

import javax.ejb.Remote;

import cl.tinet.trainee.proyecto.modelo.Reserva;

/**
 * 
 * Extiende de InterfazGenericaDAO para añadir los metodos del CRUD y define
 * las firmas de las busquedas especificas para la tabla reserva.
 * 
 * @author Jose Palma.
 */
@Remote
public interface InterfazReservaDAO extends InterfazGenericaDAO<Reserva> {
    /**
     * 
     * Busca las reservas para un dia en especifico.
     * 
     * @param fechaABuscar
     *            Busca las reservas para la fecha ingresada.
     * @return Listado de las reservas para la fecha ingresada.
     */
    ArrayList<Reserva> buscarPorFecha(Date fechaABuscar);

    /**
     * 
     * Busca las reservas por el id de la sala.
     * 
     * @param idsala
     *            Busca las reservas por idsala.
     * @return Reservas para la idsala ingresada.
     */
    ArrayList<Reserva> buscarPorSala(int idsala);

    /**
     * 
     * Busca las reservas por id del usuario.
     * 
     * @param idusuario
     *            Busca las reservas del usuario idusuario.
     * @return Listado de las reservas existentes para el usuario
     */
    ArrayList<Reserva> buscarPorUsuario(int idusuario);
}
